task.error_info instead.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
$\mathit{RO}_\mathit{run}$ & {\tt progress} & int & if the task is still pending, this field contains the estimated percentage complete (0-100). If task has completed (successfully or unsuccessfully) this should be 100. \\
$\mathit{RO}_\mathit{run}$ & {\tt type} & string & if the task has completed successfully, this field contains the type of the encoded result (i.e. name of the class whose reference is in the result field). Undefined otherwise. \\
$\mathit{RO}_\mathit{run}$ & {\tt result} & string & if the task has completed successfully, this field contains the result value (either Void or an object reference). Undefined otherwise. \\
-$\mathit{RO}_\mathit{run}$ & {\tt error\_code} & int & if the task has failed, this field contains the error code. Undefined otherwise. \\
$\mathit{RO}_\mathit{run}$ & {\tt error\_info} & string Set & if the task has failed, this field contains the set of associated error strings. Undefined otherwise. \\
$\mathit{RO}_\mathit{run}$ & {\tt allowed\_operations} & (task\_allowed\_operations) Set & Operations allowed on this task \\
\hline
}
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_error\_code}
-
-{\bf Overview:}
-Get the error\_code field of the given task.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_error_code (session_id s, task ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt task ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
value of the field
\vspace{0.3cm}
\vspace{0.3cm}
'progress',
'type',
'result',
- 'error_code',
'error_info',
'allowed_operations',
'session'
task = XendTaskManager.get_task(task_ref)
return xen_api_success(task.result)
- def task_get_error_code(self, session, task_ref):
- task = XendTaskManager.get_task(task_ref)
- return xen_api_success(task.error_code)
-
def task_get_error_info(self, session, task_ref):
task = XendTaskManager.get_task(task_ref)
return xen_api_success(task.error_info)
"""Represents a Asynchronous Task used by Xen API.
Basically proxies the callable object in a thread and returns the
- results via self.{type,result,error_code,error_info}.
+ results via self.{type,result,error_info}.
@cvar task_progress: Thread local storage for progress tracking.
It is a dict indexed by thread_id. Note that the
self.uuid = uuid
self.result = None
- self.error_code = ''
self.error_info = []
self.name_label = label or func.__name__
self.result = result['Value']
self.set_status(XEN_API_TASK_STATUS_TYPE[1])
else:
- self.error_code = result['ErrorDescription'][0]
- self.error_info = result['ErrorDescription'][1:]
+ self.error_info = result['ErrorDescription']
self.set_status(XEN_API_TASK_STATUS_TYPE[2])
except Exception, e:
log.exception('Error running Async Task')
- self.error_code = 'INTERNAL ERROR'
- self.error_info = [str(e)]
+ self.error_info = ['INTERNAL ERROR', str(e)]
self.set_status(XEN_API_TASK_STATUS_TYPE[2])
self.task_progress_lock.acquire()
'progress': self.get_progress(),
'type': self.type,
'result': self.result,
- 'error_code': self.error_code,
'error_info': self.error_info,
'allowed_operations': {},
'session': self.session,